﻿using FluentNHibernate.Mapping;
using SOLInfo.GEN.Domain.Entities;
using SOLInfo.GEN.Domain.VO;

namespace SOLInfo.GEN.Repository.Mappings
{
    public class NoticiaMapping: ClassMap<Noticia>
    {
        public NoticiaMapping()
        {
            Id(x => x.Codigo);
            Map(x => x.DataFim);
            Map(x => x.DataInicio);
            Map(x => x.Editorias);
            Map(x => x.Fonte);
            Map(x => x.Imagem);
            Map(x => x.PublicadoEm);
            Map(x => x.SubTitulo);
            Map(x => x.TextoNoticia);
            Map(x => x.Titulo);
            Map(x => x.URLVideo);
            References<Usuario>(x => x.PublicadoPor)
                .Cascade.SaveUpdate();
            HasMany<Categoria>(x => x.Categorias)
                .Cascade.SaveUpdate();
            HasManyToMany<PalavraChave>(x => x.PalavraChave)
                .Cascade.SaveUpdate()
                .Table("PalavraChave_Noticia");

            Component<Manutencao>(x => x.Criacao, MappingBase.MapManutencao("Criacao"));
            Component<Manutencao>(x => x.UltimaAlteracao, MappingBase.MapManutencao("Alteracao"));
        }
    }
}
